在Ubuntu系统上安装和配置 ddns-go 的详细步骤

以下是 在Ubuntu系统上安装和配置 ddns-go 的详细步骤指南,涵盖 二进制安装Docker部署 两种方式,适合不同需求的用户。


一、二进制安装(推荐)

1. 准备工作

  • 系统要求:Ubuntu 18.04/20.04/22.04(支持 x86_64/ARM 架构)。
  • 依赖项:确保已安装 curltar
    1
    2
    sudo apt update
    sudo apt install -y curl tar

2. 下载 ddns-go 二进制文件

根据 CPU 架构选择对应版本(以 x86_64 为例):

1
2
3
4
5
6
7
8
9
# 创建安装目录
mkdir -p /usr/local/bin/ddns-go
cd /usr/local/bin/ddns-go

# 下载最新版本(替换为实际版本号)
curl -LO "https://github.com/jeessy2/ddns-go/releases/download/v6.7.7/ddns-go_6.7.7_linux_x86_64.tar.gz"

# 解压文件
tar zxvf ddns-go_6.7.7_linux_x86_64.tar.gz

3. 安装服务

1
2
3
4
5
# 赋予执行权限
chmod +x ddns-go

# 安装为系统服务
sudo ./ddns-go -s install

4. 配置 systemd 服务(可选优化)

如果安装失败,可手动创建服务文件:

1
sudo nano /etc/systemd/system/ddns-go.service

粘贴以下内容(根据实际路径调整):

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=DDNS-GO Service
After=network.target

[Service]
ExecStart=/usr/local/bin/ddns-go/ddns-go
Restart=always
User=root

[Install]
WantedBy=multi-user.target

保存后启动服务:

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable ddns-go
sudo systemctl start ddns-go

5. 开放防火墙端口

默认服务监听端口为 9876,需开放防火墙:

1
2
sudo ufw allow 9876/tcp
sudo ufw reload

6. 访问 Web 配置界面

在浏览器中访问:

1
http://<Ubuntu_IP>:9876

首次访问会提示初始化配置(用户名:admin,密码:admin)。


二、Docker 部署(推荐用于隔离环境)

1. 安装 Docker

1
2
sudo apt update
sudo apt install -y docker.io

2. 拉取并运行容器

1
2
3
4
5
6
docker run -d \
--name ddns-go \
--restart=always \
--net=host \
-v /opt/ddns-go:/root \
jeessy/ddns-go
  • --net=host:共享主机网络,简化 IPv6 支持。
  • -v /opt/ddns-go:/root:挂载配置文件到宿主机。

3. 访问 Web 界面

浏览器访问:

1
http://<Ubuntu_IP>:9876

三、核心配置(Web 界面操作)

1. 登录初始配置

  • 首次访问需修改默认密码(admin/admin)。
  • 填写 DNS 服务商信息(如阿里云、腾讯云、Cloudflare):
    • DNS 服务商:选择对应平台。
    • AccessKey/SecretKey:填写 API 密钥(需在 DNS 平台生成)。
    • 域名:输入需动态解析的域名(如 example.com)。
    • IP 获取方式:选择 自动检测 或指定网卡(如 eth0)。

2. 高级设置(可选)

  • IPv6 支持:勾选 启用 IPv6,并选择获取方式(如 通过接口获取)。
  • 同步间隔:默认 5 分钟,可自定义(单位:秒)。
  • Webhook 通知:填写回调 URL,用于接收状态变更通知。

3. 保存并验证

点击保存后,服务会自动开始检测 IP 变化。可在 日志页面 查看更新记录。


四、验证服务状态

1. 检查服务运行状态

1
2
3
systemctl status ddns-go
# 或 Docker 容器状态
docker ps -a | grep ddns-go

2. 查看日志

  • 二进制安装
    1
    journalctl -u ddns-go -f
  • Docker
    1
    docker logs -f ddns-go

3. 测试域名解析

1
2
3
ping <your_domain>
# IPv6 用户使用
ping6 <your_domain>

五、常见问题与解决方案

问题 原因与解决方法
无法访问 Web 界面 检查防火墙是否开放 9876 端口;确认服务是否正常运行。
域名未更新 检查 DNS 密钥是否正确;查看日志确认 API 调用是否失败。
IPv6 无法解析 确保系统已获取 IPv6 地址;检查路由器防火墙是否关闭。
服务启动失败 检查二进制文件权限(chmod +x);Docker 容器是否冲突。

六、卸载 ddns-go

二进制安装

1
2
sudo ./ddns-go -s uninstall
rm -rf /usr/local/bin/ddns-go

Docker 安装

1
2
docker stop ddns-go && docker rm ddns-go
docker rmi jeessy/ddns-go

七、总结

  • 二进制安装:适合需要精细控制服务配置的用户,直接集成到系统服务。
  • Docker 部署:适合希望快速启动且隔离环境的用户,便于迁移和备份。
  • 适用场景:家庭宽带动态 IP 管理、IPv6 设备远程访问、企业多域名动态解析。